package features.advance.leetcode.array.easy;

import java.util.Arrays;

/**
 *  剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
 *
 *  难度：简单
 *
 * 输入一个整数数组，实现一个函数来调整该数组中数字的顺序，使得所有奇数位于数组的前半部分，所有偶数位于数组的后半部分。
 *
 *
 * 示例：
 *
 * 输入：nums = [1,2,3,4]
 * 输出：[1,3,2,4]
 * 注：[3,1,2,4] 也是正确的答案之一。
 *
 *
 * 提示：
 *
 * 0 <= nums.length <= 50000
 * 1 <= nums[i] <= 10000
 *
 * @author LIN
 * @date 2021-06-16
 */
public class Offer21 {
    public static void main(String[] args) {
        Solution solution = new Solution() {
        };
        int[] nums = {2,16,3,5,13,1,16,1,12,18,11,8,11,11,5,1};
        int[] exchange = solution.exchange(nums);
        System.out.println(Arrays.toString(exchange));
        //[2,16,1,1,5,11,1,3,12,18,13,8,16,11,11,5]
    }

    static class Solution {
        /**
         * 快速排序
         * @param nums
         * @return
         */
        public int[] exchange(int[] nums) {
            if(nums == null){
                return null;
            }
            int index = 0;
            for(int i=0;i<nums.length;i++){
                int obj = nums[i];
                if(obj % 2 != 0){
                    int tmp = nums[i];
                    nums[i] = nums[index];
                    nums[index] = tmp;
                    index++;
                }
            }
            return nums;
        }
    }

}
